perm filename C[GEO,BGB]2 blob sn#027474 filedate 1973-03-07 generic text, type T, neo UTF8
00100	;ALTERNATE PDP-10 MNEMONICS.
00200	
00300		DEFINE O(A,B){OPDEF A[B]}
00400		O LIP,HLR↔O LAP,HRR↔O DIP,HRLM↔O DAP,HRRM
00500		O ZIP,HRRZS↔O ZAP,HLLZS↔O WIP,HRROS↔O WAP,HRRZS
00600		O CAR,HLRZ↔O LIPI,HRLI↔O LAPI,HRRI↔O DIPZ,HRLZM
00700		O CDR,HRRZ↔O LACI,MOVEI↔O SLACI,MOVSI↔O DAPZ,HRRZM
00800		O LAC,MOVE↔O LACN,MOVN↔O LACM,MOVM↔O SLAC,MOVS
00900		O DAC,MOVEM↔O DACN,MOVNM↔O DACM,MOVMM↔O SDAC,MOVSM
01000		O NIP,HLRE↔O NAP,HRRE↔O NIM,HRREI↔O GO,JRST
01100		O DZM,SETZM↔O DOM,SETOM
01200		O FLOAT,FSC 233↔O FLO,FSC 225↔O FIXX,FIX 233000
01300	
01400	;SAIL LIKE SUBROUTINE LINKAGE.
01500	
01600		↓P←←17
01700		DEFINE SUBR(NAME){INTERN NAME↔↓NAME: ;}
01800		DEFINE CALL(NAME,X1,X2,X3,X4){
01900		IFDIF<><X1>{PUSH 17,X1↔IFDIF<><X2>{PUSH 17,X2
02000		IFDIF<><X3>{PUSH 17,X3↔IFDIF<><X4>{PUSH 17,X4}}}}
02100		IFDIF<><NAME>{PUSHJ 17,NAME}}
02200		DEFINE ARG1<-1(17)>↔DEFINE ARG2<-2(17)>
02300		DEFINE ARG3<-3(17)>↔DEFINE ARG4<-4(17)>
02400		DEFINE SETQ(VAR,LIST){CALL(LIST)↔DAC 1,VAR}
02500	
02600	;RETURN FROM AN N-ARGUMENT SUBROUTINE CALL.
02700	
02800		DEFINE POP0J <POPJ 17,>
02900		↓POP1J.:SUB 17,[XWD 2,2]↔GO@2(17)↔DEFINE POP1J<GO POP1J.>
03000		↓POP2J.:SUB 17,[XWD 3,3]↔GO@3(17)↔DEFINE POP2J<GO POP2J.>
03100		↓POP3J.:SUB 17,[XWD 4,4]↔GO@4(17)↔DEFINE POP3J<GO POP3J.>
03200		↓POP4J.:SUB 17,[XWD 5,5]↔GO@5(17)↔DEFINE POP4J<GO POP4J.>
03300	
03400	;ACCUMULATOR AND TEMPORARY DATA MANAGEMENT.
03500	
03600		FOR @$ I←0,17{↓AC$I:0↔}
03700		DEFINE SAVAC $(N){LAC[XWD 2,AC2]↔BLT AC$N}
03800		DEFINE GETAC (N){LAC[XWD AC2,2]↔BLT N}
03900		DEFINE ACCUMULATORS(LIST){ACPTR←←2
04000		FOR AC⊂(LIST)<AC←ACPTR↔ACPTR←←ACPTR+1↔>}
04100		DEFINE DECLARE (LIST){
04200		FOR VARNAM⊂(LIST)<VARNAM: 0↔>}
04300	
04400	;FATAL ERROR MESSAGE.
04500	
04600		DEFINE FATAL(STR){PUSHJ 17,FATAL.↔JFCL[ASCIZ/STR/]}
04700		FATAL.:OUTSTR[BYTE(7)15,12,106,101,124↔"AL - "⊗1↔0]
04800		CDR 1,(17)↔OUTSTR@(1)↔INCHRW↔GO .-1↔LIT
04900		DEFINE CRLF{OUTSTR[BYTE(7)15,12]}